package metiers;
/**
 * La classe Association reprsente un axe et permet d'établir une association entre
 * deux concepts.<br/>
 * le premier concept est le concept central de la requête et le second fait office
 * d'axe*/
public class Axe {

	/**le concept ayant pour axe en principal ou en complémentaire cet axe */
	private Concept concept ;
	
	/**le concept concerné par  cet axe*/
	private Concept conceptAssocie;
	
	/**le type d'association entre les deux concepts*/
	private typeAssociationConcept typeAssociation;
	
	/**le nombre de valeur manquantes*/
	private int nbrVal;
	
	/**le nombre de fois ou cet axe est */
	private int nombreChoix;
	
	/**le classement de cet axe pour*/
	private int pourClassement;
	
	/**la statistique de cet axe associée à ces deux concepts*/
	private double statistiqueX2;
	
	
	/*--------------------CONSTRUCTEURS---------------------------------*/
	
	public Axe (Concept A, Concept B, typeAssociationConcept type, int valm,int nbrChoix, int clasmnt, double stat){
		nbrVal=valm;
		concept=A;
		conceptAssocie=B;
		typeAssociation=type;
		nombreChoix=nbrChoix;
		pourClassement=clasmnt;
		statistiqueX2=stat;
		
	}
	
	public Axe(Concept A, Concept B, typeAssociationConcept type,double stat){
		conceptAssocie=B;
		typeAssociation=type;
		concept=A;
		statistiqueX2=stat;
	}
	
	public Axe(Concept A, Concept B, typeAssociationConcept type,double stat, int valM){
		concept=A;
		conceptAssocie=B;
		typeAssociation=type;
		statistiqueX2=stat;
		nbrVal=valM;
	}
	
		
	public String toString(){
		return concept.toString()+"->"+conceptAssocie.toString()+" typeasso: "+typeAssociation;
	}
	
	
	/**
	 * vérifie si deux axes sont égaux
	 * @param ass1
	 * @param ass2
	 * @return
	 */
	public  boolean egaliteAsso( Axe ass2){
		
		if(concept.getNom().equals(ass2.getConcept().getNom()) && this.getConceptAssocie().getNom().equals(ass2.getConceptAssocie().getNom()) && this.getTypeAssociation().equals(ass2.getTypeAssociation())){
			return true;
		}
		else{
			return false;
		}
	}


	/*--------------GETTERS ET SETTERS--------------------------------------*/
	public Concept getConcept() {
		return concept;
	}

	public void setConcept(Concept concept) {
		this.concept = concept;
	}

	public Concept getConceptAssocie() {
		return conceptAssocie;
	}

	public void setConceptAssocie(Concept conceptAssocie) {
		this.conceptAssocie = conceptAssocie;
	}



	public typeAssociationConcept getTypeAssociation() {
		return typeAssociation;
	}
	public void setTypeAssociation(typeAssociationConcept typeAssociation) {
		this.typeAssociation = typeAssociation;
	}
	public int getNombreChoix() {
		return nombreChoix;
	}

	public void setNombreChoix(int nombreChoix) {
		this.nombreChoix = nombreChoix;
	}

	public int getPourClassement() {
		return pourClassement;
	}

	public void setPourClassement(int pourClassement) {
		this.pourClassement = pourClassement;
	}

	public double getStatistiqueX2() {
		return statistiqueX2;
	}

	public void setStatistiqueX2(double statistiqueX2) {
		this.statistiqueX2 = statistiqueX2;
	}
	public int getNbrVal() {
		return nbrVal;
	}

	public void setNbrVal(int nbrVal) {
		this.nbrVal = nbrVal;
	}

	
}